{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "3d69c609",
   "metadata": {},
   "source": [
    "# Fashion-MNIST Classification using PyTorch\n",
    "Here I will be using the [Fashion-MNIST dataset](https://github.com/zalandoresearch/fashion-mnist), to create a Neural Network model. Fashion-MNIST is a set of 28x28 greyscale images of clothes.\n",
    "\n",
    "<img src='https://www.franciscosalg.com/assets/post_images/2019-07-11-triplet-loss/visualizing-data.png' width=800px>\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "37007d63",
   "metadata": {},
   "source": [
    "MNIST dataset because is 28x28, so it has total of 784 pixels, and there are 10 classes here. So here we want to include at least one Hidden Layer. Also I am going to use ReLU activation that is commonly use by data scientists for the layers to get log-softmax from forward pass. Lets start!!! "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5a4e5415",
   "metadata": {},
   "source": [
    "##### Here, if we have the GPU avilable we can use it for computational otherwise we can CPU but training time will take longer"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "ff83b4d6",
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "from torch import nn, optim # optim here allow us to get optimizers\n",
    "from torchvision import datasets, transforms\n",
    "import torchvision\n",
    "from torch.utils.data import Dataset, DataLoader\n",
    "import torch.nn.functional as F # let us to use ReLU and log softmax\n",
    "import helper\n",
    "from sklearn.metrics import confusion_matrix\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "d72b2ba0",
   "metadata": {},
   "outputs": [],
   "source": [
    "device=torch.device(\"cuda:0\" if torch.cuda.is_available() else \"cpu\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "ad5b1ce5",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1.9.0\n"
     ]
    }
   ],
   "source": [
    "print(torch. __version__)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e211e6f4",
   "metadata": {},
   "source": [
    "### 2) Image transformation and normalization, and conver them to tensor"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "5f06eb15",
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "transform = transforms.Compose([transforms.ToTensor(),\n",
    "                                transforms.Normalize((0.5,), (0.5,))])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9c6d8f5f",
   "metadata": {},
   "source": [
    "### 3) let's load the dataset and create train and test datasets"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e9e530e8",
   "metadata": {},
   "source": [
    "In general there are two ways to upload the MNIST fashion datasets. 1) Load csv dile and 2) use torchvision.datasets. \n",
    "Here we use torchvision.datasets package."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "c5f2d4f3",
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "# Download and load the training data\n",
    "trainset = torchvision.datasets.FashionMNIST('~/.pytorch/F_MNIST_data/', download=True, train=True, transform=transform)\n",
    "\n",
    "# Download and load the test data\n",
    "testset = torchvision.datasets.FashionMNIST('~/.pytorch/F_MNIST_data/', download=True, train=False, transform=transform)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f933e45c",
   "metadata": {},
   "source": [
    "### 4) Creating dataloaders for both training and testing"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "d960e204",
   "metadata": {},
   "outputs": [],
   "source": [
    "trainloader = torch.utils.data.DataLoader(trainset, batch_size=64, shuffle=True, num_workers=10)\n",
    "\n",
    "testloader = torch.utils.data.DataLoader(testset, batch_size=64, shuffle=True, num_workers=10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "c479bbea",
   "metadata": {},
   "outputs": [],
   "source": [
    "##   Different  classes in Fashion MNIST dataset\n",
    "\n",
    "classes=('Tshirt', 'Trouser','Pullover', 'Dress', 'Coat',\n",
    "        'Sandal','Shirt', 'Sneaker','Bag', 'Anke boot' )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "7b76f8af",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "66fa2dc0",
   "metadata": {},
   "source": [
    "### 3) Playing with data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "b77f47c0",
   "metadata": {},
   "outputs": [],
   "source": [
    "## We can use helper function to see some images of MNIST fashion\n",
    "\n",
    "def matplotlib_imshow (img, one_channel=False):\n",
    "    if one_channel:\n",
    "        img=im.mean(dim=0)\n",
    "    img=img/2+0.5 # unnormalize\n",
    "    npimg=img.numpy()\n",
    "    if one_channel:\n",
    "        plt.imshow(npimg, cmap=\"Greys\")\n",
    "    else:\n",
    "        plt.imshow(np.transpose(npimg, (1,2,0)))\n",
    "        "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "2f138c9f",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "## Now lets try to get some random images\n",
    "\n",
    "d=iter(trainloader)\n",
    "images, labels=d.next()\n",
    "matplotlib_imshow(torchvision.utils.make_grid(images))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "ab157491",
   "metadata": {},
   "outputs": [],
   "source": [
    "##### We can also playing with the datsets these codes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "80b34a26",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "torch.Size([64, 1, 28, 28])"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mnist=next(iter(trainloader))\n",
    "mnist[0].size()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "26e8ee34",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "60000"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(trainset)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "b3803b1c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "10000"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(testset)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "9dd67657",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAOcAAADnCAYAAADl9EEgAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAAHoUlEQVR4nO3dzXNWdxnH4ROS0AQSIAlvjoXwVktbrXXUqQtXztT/WJ2xlYVSFwId6UbaKiysvEQgIUDIk4Q8rrrj3D98Qpov7XUtuftLngY+nBnuOeeMDYfDDsizb68/APBi4oRQ4oRQ4oRQ4oRQE9XwN7/+qX/KhV126fL1sRf9uisnhBInhBInhBInhBInhBInhBInhBInhBInhBInhBInhBInhBInhBInhBInhBInhBInhBInhBInhBInhBInhBInhBInhBInhBInhBInhBInhBInhBInhBInhCpfAQjfFz9+771y/sWXX/bONjc3X/XH6brOlRNiiRNCiRNCiRNCiRNCiRNCiRNC2XMSY2xsrHd2/ty58uyvPvywnN+9e7ec//f+/XJ+/Nix3tl/bt8uz47KlRNCiRNCiRNCiRNCiRNCiRNCiRNC2XO+ZiYnJ8v53NxcfX6i/i2vzld7yK7ruhPHj5fzn33wQTmv7pm809hT/uDkyXI+OzNbzm/eulXOt7e3y/lucOWEUOKEUOKEUOKEUOKEUOKEUFYpr5mZgwfL+dTUVDlfffSonA82NnpnE+P1H5eN4mzXdd1K43t/9dU/e2erj1fLsy1Xrl7d0fn5YsV0vLFCWlpaGul7unJCKHFCKHFCKHFCKHFCKHFCKHFCKHvO18zyysqO5rvp7r36tq6Whfn53tlE41a31u1sO/Vwebl31npspz0nfMeIE0KJE0KJE0KJE0KJE0KJE0LZcxKjeixntWfsuq4bDAav+uO8tPv3H5Tz1v2efVw5IZQ4IZQ4IZQ4IZQ4IZQ4IZQ4IZQ9JzHGx8dHPru+vv4KP8n/59Fq/Tze04dPjfR1XTkhlDghlDghlDghlDghlDghlDghlD0nr4X9k5PlfDCo3w3aeu7t1tZWOa+eizscDsuza8+elfM+rpwQSpwQSpwQSpwQSpwQSpwQyiqFGGtra72zfY3byZ4/r1ch29vbI32mb7TWJZXNjc2RzrlyQihxQihxQihxQihxQihxQihxQih7TmI8f/68d3bgwIHy7GCjvmVsenq6nD99+rScV6/xO3fmbHl2fTDaYztdOSGUOCGUOCGUOCGUOCGUOCGUOCGUPScxlldWemeTjUdjPl59XM6npqfKefXoy67rukOzs72zmZmD5dl/3bpZzvu4ckIocUIocUIocUIocUIocUIocUIoe06+NTMzM+V8fF//s2kfrT4qzx48WO8az545U85b93M+edI/P9P42p9culTO+7hyQihxQihxQihxQihxQihxQihxQih7Tl6ZhYWFcj5svCPz5MmTvbN3332nPLtS3AvadV1348aNct567u3ckSO9s8mJ+l7TUblyQihxQihxQihxQihxQihxQiirFF7a/Nxc/R8Mh+X4zR++Wc7Xnq31zv525Up5tnp9YNe1H63Zsrm11Tu7/+DBjr52H1dOCCVOCCVOCCVOCCVOCCVOCCVOCPW93HPu21f/nbTduLXpu+zQoUO9s7HGz+3CufPl/B9f1Ldtra6ulvPK9PR0OW+94m9zc7OcV4/tXF5+WJ4dlSsnhBInhBInhBInhBInhBInhBInhHpt95ytewvXB4Pe2cL8fHn27r175by1E0t24sSJcr5R/Nx++fNflGc/ufSncr5V3BPZdfX+ubV7HjbuJd2picn+VFqvDxyVKyeEEieEEieEEieEEieEEieEEieEit1zTkzUH+3Z+no9f/asd/bOxYvl2fnGHvT655+X8710+tSpct76ub3/k/d7Z5f/+ml5trXHbNnJfbSt1wuO7/C5tZWtxjNzR+XKCaHECaHECaHECaHECaHECaFiVymtf5ZvrTsWT5/unS0tLZVnZ2ZmyvleWlxcLOf7xuq/by++/XY5//Plv/TOdvu2rJ2YaKxKdvzZi/MbGxs7+9o9XDkhlDghlDghlDghlDghlDghlDghVLnnbL02rXVb1/PiVpqpqany7HbjNpzW3urfX3/d/7kaO9TqNXhd13W//eijcv7Hjz8u5/sn9/fOFhf797Nd1359YWv/e/nT+rav5F1mZbceT/mNBw/7X/O3Wz8zV04IJU4IJU4IJU4IJU4IJU4IJU4IVS4qW6/ZO3r06MjfeDCo74F7ulbvrZo72PH+/7VjR4+VZ580dmZ/v369nJ89c7acT0290TtrvV6wtVu+eu1aOX9d95gtP3rrrXLe+vOyvLJSzo8uLPTOLpy/UJ793R9+X877uHJCKHFCKHFCKHFCKHFCKHFCKHFCqHJpVt3D9jLzqTf693mt+zlb9y0ePnyknM8d6Z+3don79/d/7q7rus3Gc0pPnjhezqs96s2bN8uzg116RurLGB8fL+fV/bu7bXZ2tp7P1PNjx+rdd/V6widPHpdnR/25uHJCKHFCKHFCKHFCKHFCKHFCKHFCqF19P+f6YDDS7GU8XF7e0fnddPvOnb3+CLtiL/eYLdc++2yvP8Ir58oJocQJocQJocQJocQJocQJocQJocQJocQJocQJocQJocQJocQJocQJocQJocQJocQJocQJocQJocQJocQJocQJocaGw+FefwbgBVw5IZQ4IZQ4IZQ4IZQ4IZQ4IdT/ANzBe2sRgh+0AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "image, label = next(iter(trainloader))\n",
    "helper.imshow(image[0,:]);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "3f3394dd",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "9\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "## or we can use this method\n",
    "image, label=next(iter(trainset))\n",
    "plt.imshow(image.squeeze(), cmap=\"gray\")\n",
    "print(label)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "db19ada5",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "9\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "## or we can use this method\n",
    "image, label=next(iter(testset))\n",
    "plt.imshow(image.squeeze(), cmap=\"jet\")\n",
    "print(label)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ed634e33",
   "metadata": {},
   "source": [
    "### 3) Create our Neural network architecture"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "id": "48523764",
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "class Fashion(nn.Module):\n",
    "    def __init__(self):\n",
    "        super().__init__()\n",
    "        self.c1 = nn.Linear(784, 256)\n",
    "        self.c2 = nn.Linear(256, 128)\n",
    "        self.c3 = nn.Linear(128, 64)\n",
    "        self.c4 = nn.Linear(64, 10)\n",
    "        \n",
    "    def forward(self, x):\n",
    "        x = x.view(x.shape[0], -1)\n",
    "        \n",
    "        x = F.relu(self.c1(x))\n",
    "        x = F.relu(self.c2(x))\n",
    "        x = F.relu(self.c3(x))\n",
    "        x = F.log_softmax(self.c4(x), dim=1)\n",
    "        \n",
    "        return x"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bdc9720b",
   "metadata": {},
   "source": [
    "### 4 ) Train our neural network"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bf2fcb43",
   "metadata": {},
   "source": [
    "#### 4.1.Create the network, define the error, learning rate and optimizer"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "id": "249ae839",
   "metadata": {},
   "outputs": [],
   "source": [
    "model = Fashion()\n",
    "\n",
    "\n",
    "error = nn.NLLLoss() #define a metric for our loss function\n",
    "\n",
    "learning_rate=0.001 # Defining the learning rate\n",
    "\n",
    "optimizer = optim.Adam(model.parameters(), lr=learning_rate)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "id": "883e1abc",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Parameter containing:\n",
       "tensor([[-0.0240,  0.0044, -0.0277,  ...,  0.0265,  0.0222,  0.0002],\n",
       "        [-0.0314,  0.0017, -0.0134,  ...,  0.0008,  0.0171, -0.0142],\n",
       "        [-0.0338, -0.0156,  0.0341,  ...,  0.0172, -0.0304,  0.0069],\n",
       "        ...,\n",
       "        [-0.0070, -0.0043,  0.0253,  ...,  0.0231, -0.0335,  0.0053],\n",
       "        [-0.0146, -0.0081, -0.0246,  ...,  0.0193, -0.0134,  0.0130],\n",
       "        [ 0.0319, -0.0145, -0.0216,  ...,  0.0002, -0.0054, -0.0297]],\n",
       "       requires_grad=True)"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.c1.weight"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "id": "b6466989",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Parameter containing:\n",
       "tensor([[-0.0496,  0.0485, -0.0476, -0.0971,  0.0925, -0.0936, -0.0650, -0.0042,\n",
       "         -0.0133, -0.0203,  0.0654,  0.0708,  0.0474,  0.0856,  0.0761, -0.0860,\n",
       "         -0.0555, -0.0008,  0.0571, -0.0120, -0.0679, -0.0671,  0.1097,  0.1150,\n",
       "          0.0057,  0.0811,  0.0424,  0.0350,  0.1130, -0.1020,  0.0024,  0.1073,\n",
       "          0.0405,  0.0683, -0.1173,  0.0346, -0.0955, -0.0669, -0.0202,  0.1004,\n",
       "         -0.0207, -0.0450,  0.0060,  0.0589, -0.0898, -0.0882,  0.1046, -0.1069,\n",
       "         -0.0888, -0.1012, -0.0782,  0.0805,  0.0192, -0.1082, -0.0446,  0.0944,\n",
       "          0.0294,  0.0649, -0.0727,  0.0279,  0.0637,  0.0701, -0.1229,  0.0378],\n",
       "        [ 0.0103,  0.0669,  0.0329,  0.0133,  0.0786,  0.0753, -0.0999, -0.0580,\n",
       "         -0.0162, -0.0990,  0.1105, -0.0036, -0.0726,  0.0588, -0.0938, -0.0749,\n",
       "         -0.0648,  0.0676, -0.0542, -0.0887, -0.0988, -0.0917,  0.0358, -0.1151,\n",
       "          0.0860, -0.0812,  0.0935,  0.0218,  0.0234,  0.0397, -0.0533, -0.1204,\n",
       "         -0.0592,  0.0380, -0.0893, -0.0541,  0.1226, -0.0017, -0.1188, -0.0319,\n",
       "         -0.0099,  0.0907,  0.1052, -0.1040,  0.0181,  0.1248,  0.0219,  0.0494,\n",
       "         -0.0482,  0.1003, -0.0266, -0.1104, -0.0055,  0.0524,  0.0425, -0.1149,\n",
       "         -0.1171,  0.1097,  0.0691,  0.0973,  0.0637, -0.0354, -0.0591, -0.1158],\n",
       "        [-0.0205, -0.1088, -0.0647,  0.0259, -0.0092, -0.0612, -0.0485, -0.0363,\n",
       "         -0.0451,  0.1168,  0.0921,  0.0765,  0.0265,  0.1194, -0.0393,  0.0166,\n",
       "         -0.0423, -0.1040,  0.0357,  0.0804, -0.0870,  0.0301, -0.1071,  0.0945,\n",
       "         -0.0907,  0.0850, -0.1051, -0.1170,  0.1119,  0.1201,  0.0496, -0.1099,\n",
       "         -0.0906, -0.1210, -0.0110, -0.0074,  0.0617,  0.0074, -0.0631,  0.0474,\n",
       "         -0.0295, -0.0246,  0.1083,  0.0013,  0.1001, -0.0115,  0.0503,  0.1020,\n",
       "         -0.0361, -0.0312, -0.0034,  0.0584,  0.1037,  0.0147,  0.0691, -0.0550,\n",
       "          0.1121, -0.0663,  0.0840, -0.1091,  0.0422,  0.0789, -0.0816,  0.1149],\n",
       "        [-0.1195,  0.1062,  0.0090, -0.0228, -0.0587, -0.0967,  0.0562, -0.0545,\n",
       "         -0.0085,  0.1076, -0.0718,  0.0215,  0.1044, -0.0153,  0.0092, -0.0811,\n",
       "         -0.0878, -0.1091,  0.0569,  0.1074,  0.1049,  0.0520, -0.1009, -0.0350,\n",
       "          0.0607, -0.0071, -0.0608, -0.0696,  0.0617, -0.0747, -0.0793,  0.0664,\n",
       "         -0.0534,  0.0879,  0.0546,  0.1050, -0.0570,  0.0879, -0.0935, -0.1081,\n",
       "         -0.0695, -0.0081,  0.0785, -0.1118, -0.1029,  0.1218,  0.1084, -0.0364,\n",
       "          0.0534,  0.1004,  0.0857,  0.0052,  0.1189, -0.0234, -0.0205,  0.1023,\n",
       "         -0.0364,  0.1005,  0.0623, -0.0544,  0.0229, -0.0172,  0.0559, -0.0754],\n",
       "        [-0.0489, -0.1138, -0.0433, -0.0750, -0.1099,  0.0221, -0.0058,  0.1177,\n",
       "         -0.0179,  0.0290, -0.0738, -0.0051,  0.0922,  0.0656, -0.0645,  0.0307,\n",
       "         -0.0883, -0.1032, -0.0337,  0.0109, -0.0420,  0.0789,  0.0646, -0.0982,\n",
       "         -0.0305, -0.0401,  0.0825, -0.0259, -0.1033, -0.0104,  0.0203, -0.0181,\n",
       "         -0.0711, -0.0915, -0.0451,  0.1132,  0.1068,  0.0664, -0.0483,  0.0287,\n",
       "          0.0864, -0.0046,  0.0171,  0.0916,  0.1221,  0.0583,  0.0135,  0.0177,\n",
       "          0.0916,  0.0456,  0.1033,  0.0401, -0.0561, -0.0897, -0.1142,  0.0185,\n",
       "         -0.0292, -0.1100,  0.1070,  0.0767,  0.0614,  0.1228,  0.0913,  0.0076],\n",
       "        [ 0.0607,  0.0890,  0.0829,  0.0185,  0.0045,  0.0861, -0.1167, -0.1083,\n",
       "         -0.0388,  0.0780, -0.0180,  0.0355,  0.1220,  0.0947,  0.0736, -0.0512,\n",
       "         -0.1097, -0.0703,  0.0988,  0.0417,  0.0487, -0.0402, -0.0990,  0.0950,\n",
       "         -0.0503, -0.0825, -0.0088,  0.0983, -0.1137, -0.0324, -0.0359, -0.0498,\n",
       "         -0.0069,  0.0320,  0.1017, -0.0192, -0.0870, -0.0581, -0.0666, -0.0946,\n",
       "          0.0049,  0.1039, -0.1140,  0.0216, -0.0380, -0.0650,  0.0433, -0.0997,\n",
       "         -0.0332,  0.0874,  0.0396, -0.0694, -0.0199, -0.0932,  0.1128, -0.0853,\n",
       "          0.0650, -0.0883,  0.0282, -0.1184,  0.1016, -0.0603,  0.0854,  0.0145],\n",
       "        [ 0.0163, -0.0284, -0.1211,  0.0180, -0.0555, -0.0293,  0.0174,  0.0832,\n",
       "          0.0780, -0.0758,  0.0425,  0.0506, -0.0537, -0.0927, -0.0968, -0.1083,\n",
       "         -0.0805, -0.1248, -0.0002,  0.0584, -0.1052, -0.0224,  0.0969,  0.0684,\n",
       "          0.0309, -0.0704,  0.1049, -0.1165,  0.1148, -0.0338,  0.0683,  0.1009,\n",
       "         -0.0368,  0.0542,  0.0379,  0.1154,  0.1127, -0.0778,  0.0639, -0.0968,\n",
       "          0.0422, -0.1054, -0.0621, -0.0079, -0.0434,  0.1020,  0.1102, -0.0510,\n",
       "         -0.0956, -0.1104,  0.1133,  0.1172,  0.0642, -0.0844,  0.0777, -0.0399,\n",
       "          0.0160, -0.0404,  0.1239, -0.0236,  0.0765,  0.0326,  0.0320,  0.0620],\n",
       "        [-0.1221,  0.0306, -0.0808, -0.0765, -0.0285,  0.1169,  0.0785,  0.0237,\n",
       "         -0.0178,  0.0469, -0.0635, -0.0969,  0.1002,  0.0210, -0.0728,  0.1075,\n",
       "         -0.0927, -0.0552, -0.0576, -0.0286, -0.0904, -0.0140, -0.0724, -0.0042,\n",
       "          0.1080,  0.1232,  0.0864, -0.0907,  0.0329, -0.1045,  0.0768, -0.0648,\n",
       "         -0.1037,  0.1000, -0.0778, -0.0918,  0.0921, -0.0602,  0.0292, -0.0708,\n",
       "         -0.0047, -0.0922,  0.0908,  0.0919,  0.0135,  0.0473, -0.0266,  0.0572,\n",
       "          0.0823, -0.1024,  0.1126, -0.0433, -0.0551, -0.0224,  0.0712, -0.0953,\n",
       "         -0.0664,  0.0929, -0.0830,  0.0734,  0.0936,  0.1201,  0.1122, -0.0006],\n",
       "        [ 0.0359, -0.0240,  0.0384, -0.0093,  0.0755,  0.0033, -0.0820, -0.1040,\n",
       "         -0.0099,  0.0176,  0.0666, -0.0197,  0.0105,  0.1151,  0.0408, -0.1186,\n",
       "         -0.0055, -0.1227,  0.0735,  0.0145,  0.0434, -0.0371,  0.0295, -0.0143,\n",
       "         -0.0840,  0.1099, -0.0712, -0.0246, -0.0544,  0.0910, -0.1156,  0.0235,\n",
       "          0.0856,  0.0744,  0.0443, -0.1240,  0.0826,  0.0257,  0.0328,  0.1232,\n",
       "         -0.1219,  0.0256,  0.0727, -0.0599, -0.0187,  0.0078,  0.0974,  0.0509,\n",
       "         -0.0432, -0.0604, -0.0920,  0.0172,  0.0806, -0.0947, -0.0270,  0.0669,\n",
       "          0.1247,  0.0169,  0.0280,  0.0385, -0.0132, -0.0814, -0.0930, -0.0033],\n",
       "        [-0.0645,  0.0574, -0.0531, -0.0661,  0.0278,  0.0844,  0.1204,  0.0473,\n",
       "         -0.0475,  0.1075, -0.0475,  0.1077, -0.0710,  0.0613, -0.0998, -0.0757,\n",
       "          0.1068,  0.0958, -0.0980, -0.0925,  0.0980,  0.0989,  0.0300,  0.0470,\n",
       "          0.0949, -0.1044,  0.0189, -0.0673,  0.0677, -0.0939,  0.0623, -0.0581,\n",
       "         -0.0773, -0.1006,  0.0771,  0.1166, -0.0365, -0.0498, -0.0334, -0.0246,\n",
       "         -0.1006, -0.1214, -0.0560,  0.0229,  0.0961, -0.0058, -0.1237, -0.0152,\n",
       "         -0.0400,  0.0255, -0.0558,  0.0245, -0.0465,  0.0454,  0.0457, -0.0558,\n",
       "          0.0335, -0.0844, -0.0604,  0.1027, -0.0135,  0.0997,  0.0936, -0.0107]],\n",
       "       requires_grad=True)"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.c4.weight"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f64cac4a",
   "metadata": {},
   "source": [
    "### 4.2. Train and test our  Neural Network"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "id": "138f16c6",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Training loss: 0.14754585942912743 Test Accuracy 88.92\n",
      "Training loss: 0.14208320665782861 Test Accuracy 88.74\n",
      "Training loss: 0.1352428904424773 Test Accuracy 89.27\n",
      "Training loss: 0.13074496214879727 Test Accuracy 88.68\n",
      "Training loss: 0.12523439634583397 Test Accuracy 88.58\n",
      "Training loss: 0.12310625695939194 Test Accuracy 88.59\n",
      "Training loss: 0.11880845897225366 Test Accuracy 88.89\n",
      "Training loss: 0.11665684478516296 Test Accuracy 88.85\n",
      "Training loss: 0.10763699232217377 Test Accuracy 88.54\n",
      "Training loss: 0.10737171677399927 Test Accuracy 88.43\n",
      "Training loss: 0.10105528243616826 Test Accuracy 88.26\n",
      "Training loss: 0.10165804546914184 Test Accuracy 88.66\n",
      "Training loss: 0.0992734274441706 Test Accuracy 88.64\n",
      "Training loss: 0.09211904059763926 Test Accuracy 88.88\n",
      "Training loss: 0.09224691833066605 Test Accuracy 89.12\n",
      "Training loss: 0.08762567619910278 Test Accuracy 88.03\n",
      "Training loss: 0.09005894728088334 Test Accuracy 89.18\n",
      "Training loss: 0.0849000990638005 Test Accuracy 88.56\n",
      "Training loss: 0.08340238912233602 Test Accuracy 88.64\n",
      "Training loss: 0.08081695415215619 Test Accuracy 88.86\n",
      "Training loss: 0.0795948612573209 Test Accuracy 88.34\n",
      "Training loss: 0.07834313547751035 Test Accuracy 88.49\n",
      "Training loss: 0.07160565186478594 Test Accuracy 89.07\n",
      "Training loss: 0.07192926076121692 Test Accuracy 88.80\n",
      "Training loss: 0.06856964544986617 Test Accuracy 88.34\n",
      "Training loss: 0.06975598497277022 Test Accuracy 88.65\n",
      "Training loss: 0.06722294489469832 Test Accuracy 89.22\n",
      "Training loss: 0.06537886411383517 Test Accuracy 88.53\n",
      "Training loss: 0.06561790471163659 Test Accuracy 88.49\n",
      "Training loss: 0.06163861167886213 Test Accuracy 88.60\n",
      "Training loss: 0.06521281193761128 Test Accuracy 88.89\n",
      "Training loss: 0.06538796175975226 Test Accuracy 89.30\n",
      "Training loss: 0.06019167525113932 Test Accuracy 88.16\n",
      "Training loss: 0.055803527225748197 Test Accuracy 88.86\n",
      "Training loss: 0.06051065118829243 Test Accuracy 88.63\n",
      "Training loss: 0.054029690199169214 Test Accuracy 88.77\n",
      "Training loss: 0.06226249731534016 Test Accuracy 88.95\n",
      "Training loss: 0.05421681084802242 Test Accuracy 88.99\n",
      "Training loss: 0.056803821124010355 Test Accuracy 88.31\n",
      "Training loss: 0.04944508923637147 Test Accuracy 88.53\n",
      "Training loss: 0.051343538708287846 Test Accuracy 88.83\n",
      "Training loss: 0.05575843306016554 Test Accuracy 88.39\n",
      "Training loss: 0.0517605776415278 Test Accuracy 88.90\n",
      "Training loss: 0.04687043373489557 Test Accuracy 89.19\n",
      "Training loss: 0.04634701846030179 Test Accuracy 88.60\n",
      "Training loss: 0.04719621724529025 Test Accuracy 88.41\n",
      "Training loss: 0.05629413244751359 Test Accuracy 88.70\n",
      "Training loss: 0.03934117545188069 Test Accuracy 88.76\n",
      "Training loss: 0.044416551698161326 Test Accuracy 88.80\n",
      "Training loss: 0.04773186087509794 Test Accuracy 88.86\n"
     ]
    }
   ],
   "source": [
    "\n",
    "num_epochs = 50\n",
    "\n",
    "for e in range(num_epochs):\n",
    "    running_loss = 0\n",
    "    for images, labels in trainloader:\n",
    "        log_ps = model(images)\n",
    "        loss = error(log_ps, labels)\n",
    "        \n",
    "        optimizer.zero_grad() # Zeroing our gradients\n",
    "        loss.backward() # Taking  backward pass\n",
    "        optimizer.step()\n",
    "        \n",
    "        running_loss += loss.item()\n",
    "    else:\n",
    "        print(f\"Training loss: {running_loss/len(trainloader)}\", end=\" \")\n",
    "        \n",
    "    model.eval()\n",
    "    with torch.no_grad():\n",
    "        total=0\n",
    "        correct=0\n",
    "        for images,labels in testloader:\n",
    "            log_ps=model(images)\n",
    "            mx_index=torch.argmax(log_ps,dim=1)\n",
    "            total+=labels.numel()\n",
    "            correct+=sum(mx_index==labels).item()\n",
    "        print(f\"Test Accuracy {correct/total*100:.2f}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "37e98fd5",
   "metadata": {},
   "source": [
    "### 5. Test our network"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "id": "338fbb42",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x648 with 2 Axes>"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 216,
       "width": 424
      },
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "%config InlineBackend.figure_format = 'retina'\n",
    "\n",
    "import helper\n",
    "\n",
    "# Test out your network!\n",
    "\n",
    "dataiter = iter(testloader)\n",
    "images, labels = dataiter.next()\n",
    "img = images[1]\n",
    "\n",
    "#  Calculate the class probabilities (softmax) for img\n",
    "ps = torch.exp(model(img))\n",
    "\n",
    "# Plot the image and probabilities\n",
    "helper.view_classify(img, ps, version='Fashion')"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
